This invention generally relates to computational systems and methods, and more particularly, to systems and methods that perform numerical computations such as speech recognition systems.
The need for systems capable of performing optimized logarithm computations exists in many mathematical and engineering fields. Unfortunately, at present, systems that perform logarithmic calculations fall into three categories. The first is floating point implementations of logarithms, the second is table-ized fixed-point implementations, and the third is straight integer implementations.
In the first category (floating-point implementations) floating point numbers are utilized to represent the inputs and outputs of the system. Floating-point logarithms systems are usually implemented employing a math co-processor with some form of power series or Newton-Raphson method of convergence. As a result, this category of systems requires complex circuitry and substantial processing time to obtain a final value.
Tabularized fixed-point representation systems provide a scaled integer representation of the true logarithm value. In other words, log(x) would be represented as xe2x80x98yxe2x80x99 multiplied by log(x) where xe2x80x98yxe2x80x99 is a fixed scaling factor to preserve precision. These systems draw intermediate values of the logarithm from a table. The table contains the value of log(x) to the appropriate scale at compile time. These types of systems require the creation and manipulation of a table of values and can require substantial memory space (as a result of storing intermediate values in the table) to obtain a final value.
The last category is integer truncation of the logarithm value. Systems in this category return the value of the highest bit in the argument (x). While useful for search applications where precision is not required, the lack of precision in this type of systems means that all bits on the right of the decimal place are lost. Therefore, there is a need for a system and method that produce logarithmic values with run-time specified precision quickly without utilizing tables and/or multiplications.